package models

import (
	"gorm.io/gorm"
)

// 用户表
type User struct {
	gorm.Model
	Account    string `gorm:"type:varchar(30);not null;index;comment:用户账号"`
	Password   string `gorm:"type:varchar(30);not null;comment:用户密码"`
	UserStatus int64  `gorm:"type:int(11);default:0;comment:用户状态: 0未登录 1已登录"`
}

// 查找用户
func (u *User) GetUserInfoByAccount() error {
	return DB.Where("account = ?", u.Account).Find(&u).Error
}

// 商品表
type Goods struct {
	gorm.Model
	GoodsTitle string  `gorm:"type:varchar(30);comment:商品标题"`
	GoodsImage string  `gorm:"type:varchar(30);comment:商品封面"`
	GoodsPrice float64 `gorm:"type:decimal(10,2);default:0.00;comment:商品价格"`
	GoodsStock int64   `gorm:"type:int;default:0;comment:商品库存"`
	GoodStatus int64   `gorm:"type:int;default:0;comment:商品状态:0未上架 1已上架"`
	Status     int64   `gorm:"type:int;default:0;comment:审核状态:0未通过 1已通过"`
}

// 查找用户
func (u *User) UserShow() error {
	return DB.Where("user_status  = 1").First(&u).Error
}

// 查找商品
func (g *Goods) GoodsShow() error {
	return DB.Where("good_status and status = 1").First(&g).Error
}

// 商品发布
func (g *Goods) Create() error {
	return DB.Create(&g).Error
}

// 商品列表
func (g *Goods) List() (goodsList []*Goods, err error) {
	err = DB.Where("good_status and status = 1").Find(&goodsList).Error
	return
}
